Replication enables both local and remote access to data by keeping client and server versions of a file or document in synchronicity. While this functionality is valuable and critical to applications, it is also costly due to the amount of data that must be transmitted between the clients and the server. Entire files and documents, along with their various versions, are stored at the server, and transmitted between the server and its clients. As such, many replication systems attempt to save bandwidth by compressing data before transmitting it. However, this traditional form of compression encodes the data for the entire file, even if the majority of this data was transmitted as part of a previous version. Thus, minor changes to the data in a file or document still require the entire file or document to be compressed and transmitted, although much of the data already resides at the destination, in the form of an earlier received version.
In view of the foregoing, there is a need for systems and methods that overcome the limitations and drawbacks of the prior art.